决策树

模型定义

决策树 (Decision Tree)是一种基于 if-then 规则、自顶向下对数据进行分类的树形结构模型, 由节点与有向边组成。样本从根节点被划分到不同的子节点中, 子节点进行特征选择, 直到满足结束条件, 或者所有样本都被划分到某一类中为止。

如图所示是一个决策树的示意图

看完这个示意图, 大家可能会思考如下问题: 第一个节点 (根节点) 为什么是 $X_2$ 这个特征, 能否是其他特征? 右下角的特征分裂阈值为什么是 $X_1 \leqslant c$, 能否是 $X_1$ 小于其他值? 这就会涉及决策树如何寻找最优分裂特征, 以及如何在分裂特征中寻找最优切分值的问题, 也就是使用哪种算法可以快速、准确 地实现决策树的问题。

实现算法

决策树主要有 ID3、C4.5 和 CART 共 3 种实现算法, ID3 使用的准则是信息增益, C4.5 使用的准则是信息增益比, CART 使用的准则是基尼指数。目前应用最广泛的是 CART, 我们在这里将主要介绍 CART 算法。

CART 是一种常见的实现决策树的算法, 它使用基尼指数选择最优特征, 同时决定该特征的最优切分点。给定一个样本集 $D$, 假设目标变荲 $Y$ 的取值包含 $K$ 个类(即 $Y$ 有 $K$ 种取值), 样本尾于第$i$ 类的概率为 $p_i(i=1,2, \cdots, K)$, 定义集合 $D$ 的基尼指数 $\operatorname{Gini}(D)$ 为:

$$ \operatorname{Gini}(D)=1-\sum_{k=1}^K p_k^2 $$

根据特征 $A$ 是否取某一可能值 $a$ 被分割为 $D_1$ 和 $D_2$ 两个部分 (决策树的左右两个子节点), 那么在特征 $A$ 的条件下, 集合$D$的基尼指数 $\operatorname{Gini}(D, A)$ 定义如下: $$ \operatorname{Gini}(D, A)=\frac{\left|D_1\right|}{D} \operatorname{Gini}\left(D_1\right)+\frac{\left|D_2\right|}{D} \operatorname{Gini}\left(D_2\right) $$ $\operatorname{Gini}(D, A)$ 表示经 $A=a$ 分割后集合 $D$ 的不确定性。基尼指数越小, 表示集合 (节点)的不确定性越小,集合(节点)约 “纯”, 对应的特征及其切分点越好。在所有可能的特征, 以及特征的所有可能的切分点中, 我们通常选择基尼指数最小时所 对应的特征和切分点, 作为最优特征与最优切分点, 这就是 CART 算法的基本思路。此外, 决策树中的节点经过某个特征 的分裂后不确定性降低得越多, 说明该特征的区分能力越强, 这一点可以用于衡量特征的重要性。

模型解释性

决策树在解释性方面具有较好的优势。通过一系列 if-then 的规则, 我们可以清楚地看到各个节点和模型预测结果的由来。在进行客户分群时, 可以使用决策树对客户进行分类, 将决策树的节点视作客群, 并通过决策树的生成规则解释各个客群的含义。例如, 我们想通过征信是否良好、历史是否逾期和逾期次数这 3 个特征, 将客户按风险程度进行分群, 所构建的决策树模型如图。

通过图所示的决策树模型, 我们可以看到模型是如何通过一系列规则进行判断的:例如, 当某个客户佂信不好, 而且逾期次数超过 2 次时, 该客户会归类为高风险客户, 我们可以根据决策树的规则, 结合特征的实际意义, 对各个客群 (各 个节点)进行业务解释。这里需要注意的一点是, 当决策树生长得太深时, 决策规则会变得过长, 这样会加大业务解释的难度。

模型的优势与不足

决策树的优势主要体现在以下三个方面:(1)计算量比较 小, 所以决策树的速度会比较快; (2)模型结果是通过规则产 的, 因此解释性很好; (3)操作简单, 特征通常不需要做归一化处理。

决策树的不足之处主要体现在以下三个方面: (1) 容易产生 一个过于复杂的模型进而造成过拟吝的问题;(2)数据中的微小 变化可能会导致生成不同的树, 模型檍定性较差; (3)对于各类别样本数量不一致的数据, 信息增益偏向于那些拥有更多数值 的特征。

参考资料: